home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MACD 5
/
MACD 5.bin
/
workbench
/
boot
/
czesc_2
/
toolmanager
/
programmers
/
oberon
/
toolmanager.mod
Wrap
Text File
|
1993-05-15
|
6KB
|
161 lines
(*-------------------------------------------------------------------------*)
(* *)
(* Amiga Oberon Library Module: ToolManager Date: 16-May-93 *)
(* *)
(* © 1992 by Martin Horneffer *)
(* © 1993 by Stefan Becker (updated for ToolManager 2.1) *)
(* *)
(* This Module may freely be copied and distributed, as long as it is *)
(* left unchanged and kept together with "toolmanager.library", *)
(* © 1990-1993 Stefan Becker. *)
(* *)
(*-------------------------------------------------------------------------*)
MODULE ToolManager;
IMPORT u:Utility, Intuition, Exec;
CONST
Name * = "toolmanager.library";
Version * = 3;
CONST
(* ToolManager Object Types *)
typeExec * = 0;
typeImage * = 1;
typeSound * = 2;
typeMenu * = 3;
typeIcon * = 4;
typeDock * = 5;
typeAccess * = 6;
types * = 7;
(* ToolManager Object Properties (see Object.doc) *)
(* Type: typeExec *)
arguments * = u.user + 1;
command * = u.user + 2; (* also used for typeSound *)
currentDir * = u.user + 3;
delay * = u.user + 4;
execType * = u.user + 5;
hotKey * = u.user + 6; (* also used for typeDock *)
output * = u.user + 7;
path * = u.user + 8;
priority * = u.user + 9;
pubScreen * = u.user + 10; (* also used for typeDock *)
stack * = u.user + 11;
toFront * = u.user + 12;
(* Type: tyepImage *)
file * = u.user + 257;
data * = u.user + 258;
(* Type: typeSound *)
port * = u.user + 513;
(* Type: typeMenu, typeIcon *)
exec * = u.user + 769;
sound * = u.user + 770;
(* Type: typeIcon *)
image * = u.user + 1025;
showName * = u.user + 1026;
(* Type: typeIcon, typeDock *)
leftEdge * = u.user + 1281;
topEdge * = u.user + 1282;
(* Type: typeDock *)
activated * = u.user + 1536;
centered * = u.user + 1537;
columns * = u.user + 1538;
font * = u.user + 1539;
frontMost * = u.user + 1540;
menu * = u.user + 1541;
pattern * = u.user + 1542;
popup * = u.user + 1543;
text * = u.user + 1544;
title * = u.user + 1545;
tool * = u.user + 1546;
vertical * = u.user + 1547;
backdrop * = u.user + 1548;
sticky * = u.user + 1549;
(* Type: typeAccess *)
(* None defined yet... *)
(* Types for execType *)
cli * = 0;
wb * = 1;
arexx * = 2;
dock * = 3;
hotkey * = 4;
network * = 5;
hook * = 100;
TYPE
(* Data structures for storing image sequences (TMOBJTYPE_IMAGE/TMOP_Data) *)
(* TMImageNode contains the data for ONE picture. Several nodes are joined *)
(* into a single-linked chain via tmin_Next. *)
ImageNodePtr * = UNTRACED POINTER TO ImageNode;
ImageNode * = STRUCT
next * : ImageNodePtr; (* pointer to next node *)
data * : Exec.APTR; (* MEMF_CHIP memory!! *)
END;
(* TMImageData contains information about the image data, like sizes etc. *)
(* You MUST initialize BOTH Image structures and they MUST BE identical *)
(* except of the ImageData pointer. tmid_Normal.ImageData should point to *)
(* an image data which shows the inactive state and tmid_Selected.ImageData *)
(* should point to an image which shows the active state. *)
ImageDataPtr * = UNTRACED POINTER TO ImageData;
ImageData * = STRUCT
normal * : Intuition.Image; (* inactive state *)
selected * : Intuition.Image; (* active state *)
data * : ImageNodePtr; (* chain of images *)
END;
VAR
base * : Exec.LibraryPtr;
PROCEDURE QuitToolManager*{base,-36} ();
PROCEDURE AllocTMHandle*{base,-42} (): LONGINT;
PROCEDURE FreeTMHandle*{base,-48} ( handle{8}: LONGINT);
PROCEDURE CreateTMObjectTagList*{base,-54} ( handle{8}: LONGINT;
name{9} : ARRAY OF CHAR;
type{0} : LONGINT;
tags{10} : ARRAY OF u.TagItem): BOOLEAN;
PROCEDURE CreateTMObjectTags*{base,-54} ( handle{8}: LONGINT;
name{9} : ARRAY OF CHAR;
type{0} : LONGINT;
tags{10}..: u.Tag): BOOLEAN;
PROCEDURE DeleteTMObject*{base,-60} ( handle{8}: LONGINT;
object{9}: ARRAY OF CHAR): BOOLEAN;
PROCEDURE ChangeTMObjectTagList*{base,-66} ( handle{8}: LONGINT;
object{9}: ARRAY OF CHAR;
tags{10} : ARRAY OF u.TagItem ): BOOLEAN;
PROCEDURE ChangeTMObjectTags*{base,-66} ( handle{8}: LONGINT;
object{9}: ARRAY OF CHAR;
tags{10}..: u.Tag ): BOOLEAN;
BEGIN
base := Exec.OpenLibrary( Name, Version);
IF base=NIL THEN
IF Intuition.DisplayAlert(0,"\x00\x64\x14missing toolmanager.library!\o\o",50) THEN END;
HALT(20)
END;
CLOSE
IF base # NIL THEN Exec.CloseLibrary(base) END;
END ToolManager.